package pkg

import (
	"context"
	"time"
)

type WithoutCancelContext struct {
	Context context.Context
}

func (w *WithoutCancelContext) Done() <-chan struct{} {
	return make(chan struct{})
}

func (w *WithoutCancelContext) Err() error {
	return nil
}

func (w *WithoutCancelContext) Deadline() (time.Time, bool) {
	return time.Time{}, false
}

func (w *WithoutCancelContext) Value(key interface{}) interface{} {
	return w.Context.Value(key)
}

func WithoutCancel(ctx context.Context) context.Context {
	return &WithoutCancelContext{Context: ctx}
}
